// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/daguan/model/DaguanDeviceReq'
import OneClass from '@api/daguan/model/DaguanDeviceDto'
import BaseClass from '@api/daguan/model/DeviceDto'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    ONE: '音量', // 单项
    EDIT: '设置', // 通过
    PASS: '开机', // 通过
    REJ: '关机', // 拒绝
    tipEdit: '设置音量',
    tipSubmit: '截图',

    snap: '', // 截图的 BASE64
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 优先
     */
    FIRST: [
      [1, '服务器设置优先'],
      [0, '终端设置优先'],
    ],

    /**
     * 休眠
     */
    SLEEP: [
      [1, '关机', '', '灰'],
      [0, '开机', '', '绿'],
    ],
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, OneClass, {
    statusList: CORE.DICT.STATUS_ONLINE_DEVICE.map(([id]) => id),
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(OneClass, {
    deviceDto: CORE.initObj(BaseClass), // 设备信息

    serverFirst: 0, // 终端设置优先

    hour: undefined, // 时间

    hour1: undefined, // 时间1
    hour2: undefined, // 时间2
    hour3: undefined, // 时间3

    volume: 0, // 音量

    volume1: 0, // 音量1
    volume2: 0, // 音量2
    volume3: 0, // 音量3
  }),
}
